package com.gongyi.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//自定义注解
public class Test03 {
    //注解可以显式赋值，如果没有默认值，我们就必须给注解赋值（参数顺序无要求）
    @MyAnnotation2(age = 18, name = "工一")
    public void test() {

    }

    @MyAnnotation3("工一")//如果只有一个参数，且是value，可以省略不写【不成文规定】
    public void test2() {

    }
}

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2 {
    //注解的参数：参数类型 + 参数名();
    String name() default "";

    int age();

    int id() default -1;//如果默认值为-1，代表不存在

    String[] schools() default {"清华大学", "北京大学"};
}

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3 {
    String value();
}
